home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / SCSL / sgegs.z / sgegs
Encoding:
Text File  |  2002-10-03  |  9.6 KB  |  265 lines

  1.  
  2.  
  3.  
  4. SSSSGGGGEEEEGGGGSSSS((((3333SSSS))))                                                            SSSSGGGGEEEEGGGGSSSS((((3333SSSS))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SGEGS - routine is deprecated and has been replaced by routine SGGES
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      SUBROUTINE SGEGS( JOBVSL, JOBVSR, N, A, LDA, B, LDB, ALPHAR, ALPHAI,
  13.                        BETA, VSL, LDVSL, VSR, LDVSR, WORK, LWORK, INFO )
  14.  
  15.          CHARACTER     JOBVSL, JOBVSR
  16.  
  17.          INTEGER       INFO, LDA, LDB, LDVSL, LDVSR, LWORK, N
  18.  
  19.          REAL          A( LDA, * ), ALPHAI( * ), ALPHAR( * ), B( LDB, * ),
  20.                        BETA( * ), VSL( LDVSL, * ), VSR( LDVSR, * ), WORK( * )
  21.  
  22. IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
  23.      These routines are part of the SCSL Scientific Library and can be loaded
  24.      using either the -lscs or the -lscs_mp option.  The -lscs_mp option
  25.      directs the linker to use the multi-processor version of the library.
  26.  
  27.      When linking to SCSL with -lscs or -lscs_mp, the default integer size is
  28.      4 bytes (32 bits). Another version of SCSL is available in which integers
  29.      are 8 bytes (64 bits).  This version allows the user access to larger
  30.      memory sizes and helps when porting legacy Cray codes.  It can be loaded
  31.      by using the -lscs_i8 option or the -lscs_i8_mp option. A program may use
  32.      only one of the two versions; 4-byte integer and 8-byte integer library
  33.      calls cannot be mixed.
  34.  
  35. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  36.      This routine is deprecated and has been replaced by routine SGGES. SGEGS
  37.      computes for a pair of N-by-N real nonsymmetric matrices A, B:  the
  38.      generalized eigenvalues (alphar +/- alphai*i, beta), the real Schur form
  39.      (A, B), and optionally left and/or right Schur vectors (VSL and VSR).
  40.  
  41.      (If only the generalized eigenvalues are needed, use the driver SGEGV
  42.      instead.)
  43.  
  44.      A generalized eigenvalue for a pair of matrices (A,B) is, roughly
  45.      speaking, a scalar w or a ratio  alpha/beta = w, such that  A - w*B is
  46.      singular.  It is usually represented as the pair (alpha,beta), as there
  47.      is a reasonable interpretation for beta=0, and even for both being zero.
  48.      A good beginning reference is the book, "Matrix Computations", by G.
  49.      Golub & C. van Loan (Johns Hopkins U. Press)
  50.  
  51.      The (generalized) Schur form of a pair of matrices is the result of
  52.      multiplying both matrices on the left by one orthogonal matrix and both
  53.      on the right by another orthogonal matrix, these two orthogonal matrices
  54.      being chosen so as to bring the pair of matrices into (real) Schur form.
  55.  
  56.      A pair of matrices A, B is in generalized real Schur form if B is upper
  57.      triangular with non-negative diagonal and A is block upper triangular
  58.      with 1-by-1 and 2-by-2 blocks.  1-by-1 blocks correspond to real
  59.      generalized eigenvalues, while 2-by-2 blocks of A will be "standardized"
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSGGGGEEEEGGGGSSSS((((3333SSSS))))                                                            SSSSGGGGEEEEGGGGSSSS((((3333SSSS))))
  71.  
  72.  
  73.  
  74.      by making the corresponding elements of B have the form:
  75.              [  a  0  ]
  76.              [  0  b  ]
  77.  
  78.      and the pair of corresponding 2-by-2 blocks in A and B will have a
  79.      complex conjugate pair of generalized eigenvalues.
  80.  
  81.      The left and right Schur vectors are the columns of VSL and VSR,
  82.      respectively, where VSL and VSR are the orthogonal matrices which reduce
  83.      A and B to Schur form:
  84.  
  85.      Schur form of (A,B) = ( (VSL)**T A (VSR), (VSL)**T B (VSR) )
  86.  
  87.  
  88. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  89.      JOBVSL  (input) CHARACTER*1
  90.              = 'N':  do not compute the left Schur vectors;
  91.              = 'V':  compute the left Schur vectors.
  92.  
  93.      JOBVSR  (input) CHARACTER*1
  94.              = 'N':  do not compute the right Schur vectors;
  95.              = 'V':  compute the right Schur vectors.
  96.  
  97.      N       (input) INTEGER
  98.              The order of the matrices A, B, VSL, and VSR.  N >= 0.
  99.  
  100.      A       (input/output) REAL array, dimension (LDA, N)
  101.              On entry, the first of the pair of matrices whose generalized
  102.              eigenvalues and (optionally) Schur vectors are to be computed.
  103.              On exit, the generalized Schur form of A.  Note: to avoid
  104.              overflow, the Frobenius norm of the matrix A should be less than
  105.              the overflow threshold.
  106.  
  107.      LDA     (input) INTEGER
  108.              The leading dimension of A.  LDA >= max(1,N).
  109.  
  110.      B       (input/output) REAL array, dimension (LDB, N)
  111.              On entry, the second of the pair of matrices whose generalized
  112.              eigenvalues and (optionally) Schur vectors are to be computed.
  113.              On exit, the generalized Schur form of B.  Note: to avoid
  114.              overflow, the Frobenius norm of the matrix B should be less than
  115.              the overflow threshold.
  116.  
  117.      LDB     (input) INTEGER
  118.              The leading dimension of B.  LDB >= max(1,N).
  119.  
  120.      ALPHAR  (output) REAL array, dimension (N)
  121.              ALPHAI  (output) REAL array, dimension (N) BETA    (output) REAL
  122.              array, dimension (N) On exit, (ALPHAR(j) + ALPHAI(j)*i)/BETA(j),
  123.              j=1,...,N, will be the generalized eigenvalues.  ALPHAR(j) +
  124.              ALPHAI(j)*i, j=1,...,N  and  BETA(j),j=1,...,N  are the diagonals
  125.              of the complex Schur form (A,B) that would result if the 2-by-2
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. SSSSGGGGEEEEGGGGSSSS((((3333SSSS))))                                                            SSSSGGGGEEEEGGGGSSSS((((3333SSSS))))
  137.  
  138.  
  139.  
  140.              diagonal blocks of the real Schur form of (A,B) were further
  141.              reduced to triangular form using 2-by-2 complex unitary
  142.              transformations.  If ALPHAI(j) is zero, then the j-th eigenvalue
  143.              is real; if positive, then the j-th and (j+1)-st eigenvalues are
  144.              a complex conjugate pair, with ALPHAI(j+1) negative.
  145.  
  146.              Note: the quotients ALPHAR(j)/BETA(j) and ALPHAI(j)/BETA(j) may
  147.              easily over- or underflow, and BETA(j) may even be zero.  Thus,
  148.              the user should avoid naively computing the ratio alpha/beta.
  149.              However, ALPHAR and ALPHAI will be always less than and usually
  150.              comparable with norm(A) in magnitude, and BETA always less than
  151.              and usually comparable with norm(B).
  152.  
  153.      VSL     (output) REAL array, dimension (LDVSL,N)
  154.              If JOBVSL = 'V', VSL will contain the left Schur vectors.  (See
  155.              "Purpose", above.)  Not referenced if JOBVSL = 'N'.
  156.  
  157.      LDVSL   (input) INTEGER
  158.              The leading dimension of the matrix VSL. LDVSL >=1, and if JOBVSL
  159.              = 'V', LDVSL >= N.
  160.  
  161.      VSR     (output) REAL array, dimension (LDVSR,N)
  162.              If JOBVSR = 'V', VSR will contain the right Schur vectors.  (See
  163.              "Purpose", above.)  Not referenced if JOBVSR = 'N'.
  164.  
  165.      LDVSR   (input) INTEGER
  166.              The leading dimension of the matrix VSR. LDVSR >= 1, and if
  167.              JOBVSR = 'V', LDVSR >= N.
  168.  
  169.      WORK    (workspace/output) REAL array, dimension (LWORK)
  170.              On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
  171.  
  172.      LWORK   (input) INTEGER
  173.              The dimension of the array WORK.  LWORK >= max(1,4*N).  For good
  174.              performance, LWORK must generally be larger.  To compute the
  175.              optimal value of LWORK, call ILAENV to get blocksizes (for
  176.              SGEQRF, SORMQR, and SORGQR.)  Then compute:  NB  -- MAX of the
  177.              blocksizes for SGEQRF, SORMQR, and SORGQR The optimal LWORK is
  178.              2*N + N*(NB+1).
  179.  
  180.              If LWORK = -1, then a workspace query is assumed; the routine
  181.              only calculates the optimal size of the WORK array, returns this
  182.              value as the first entry of the WORK array, and no error message
  183.              related to LWORK is issued by XERBLA.
  184.  
  185.      INFO    (output) INTEGER
  186.              = 0:  successful exit
  187.              < 0:  if INFO = -i, the i-th argument had an illegal value.
  188.              = 1,...,N:  The QZ iteration failed.  (A,B) are not in Schur
  189.              form, but ALPHAR(j), ALPHAI(j), and BETA(j) should be correct for
  190.              j=INFO+1,...,N.  > N:  errors that usually indicate LAPACK
  191.              problems:
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. SSSSGGGGEEEEGGGGSSSS((((3333SSSS))))                                                            SSSSGGGGEEEEGGGGSSSS((((3333SSSS))))
  203.  
  204.  
  205.  
  206.              =N+1: error return from SGGBAL
  207.              =N+2: error return from SGEQRF
  208.              =N+3: error return from SORMQR
  209.              =N+4: error return from SORGQR
  210.              =N+5: error return from SGGHRD
  211.              =N+6: error return from SHGEQZ (other than failed iteration)
  212.              =N+7: error return from SGGBAK (computing VSL)
  213.              =N+8: error return from SGGBAK (computing VSR)
  214.              =N+9: error return from SLASCL (various places)
  215.  
  216. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  217.      INTRO_LAPACK(3S), INTRO_SCSL(3S)
  218.  
  219.      This man page is available only online.
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.